import { IPSAppDEField } from '../../app/dataentity/ipsapp-defield';
import { IPSControl } from '../ipscontrol';
import { IPSDEFormDetail } from './ipsdeform-detail';
import { IPSDEFormGroupBase } from './ipsdeform-group-base';
import { IPSDEFormItemUpdate } from './ipsdeform-item-update';

/**
 *
 * 继承父接口类型值[MDCTRL]
 * @export
 * @interface IPSDEFormMDCtrl
 */
export interface IPSDEFormMDCtrl extends IPSDEFormDetail, IPSDEFormGroupBase {
  /**
   * 内建操作
   * @description 值模式 [表单多项数据部件操作] {1：新建、 2：更新、 4：删除 }
   * @type {( number | 1 | 2 | 4)}
   * @default 0
   */
  buildInActions: number | 1 | 2 | 4;

  /**
   * 内容部件
   *
   * @type {IPSControl}
   */
  getContentPSControl(): IPSControl | null;

  /**
   * 内容类型
   * @description 值模式 [多数据部件类型] {LIST：列表、 FORM：表单、 GRID：表格、 DATAVIEW：卡片视图、 REPEATER：重复器 }
   * @type {( string | 'LIST' | 'FORM' | 'GRID' | 'DATAVIEW' | 'REPEATER')}
   */
  contentType: string | 'LIST' | 'FORM' | 'GRID' | 'DATAVIEW' | 'REPEATER';

  /**
   * 绑定属性
   * @type {string}
   */
  fieldName: string;

  /**
   * 应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getPSAppDEField(): IPSAppDEField | null;

  /**
   * 调用表单项更新
   *
   * @type {IPSDEFormItemUpdate}
   */
  getPSDEFormItemUpdate(): IPSDEFormItemUpdate | null;

  /**
   * 重置项名称
   * @type {string}
   */
  resetItemName: string;

  getResetItemNames(): string[] | null;

  /**
   * 1:1数据表单
   * @type {boolean}
   * @default false
   */
  one2OneForm: boolean;
}
